#include<stdio.h>
#include<stdlib.h>
#include<openssl/bn.h>

int main()
{
    BIGNUM *a,*b;
    a = BN_new();
    b = BN_new();

    BN_CTX *ctx = BN_CTX_new();

    char * show;

    //计算2的1326次方
    BN_set_word(a, 2);
    BN_set_word(b, 1326);
    BN_exp(a, a, b, ctx);
    show = BN_bn2hex(a);
    printf("2的1326次方 = %s\n", show);


    //计算前五位同学和后五位同学8位学号的乘积
    BN_set_word(a, 1);
    BN_set_word(b, 20191321);
    BN_mul(a, a, b,ctx);
    BN_set_word(b, 20191322);
    BN_mul(a, a, b,ctx);
    BN_set_word(b, 20191323);
    BN_mul(a, a, b,ctx);
    BN_set_word(b, 20191324);
    BN_mul(a, a, b,ctx);
    BN_set_word(b, 20191325);
    BN_mul(a, a, b,ctx);
    BN_set_word(b, 20191326);
    BN_mul(a, a, b,ctx);
    BN_set_word(b, 20191327);
    BN_mul(a, a, b,ctx);
    BN_set_word(b, 20191328);
    BN_mul(a, a, b,ctx);
    BN_set_word(b, 20191329);
    BN_mul(a, a, b,ctx);
    BN_set_word(b, 20191330);
    BN_mul(a, a, b,ctx);
    BN_set_word(b, 20191331);
    BN_mul(a, a, b,ctx);
    show = BN_bn2hex(a);
    printf("学号相乘为 = %s\n", show);
    BN_free(a);
    BN_free(b);
    BN_CTX_free(ctx);
    free(show);
    return 0;
}
